Run a Schedule
{ runSchedule }
Trigger and execute of an existing schedule
Method
/API3/tasks/runSchedule
- Enterprise Admin
- Domain Admin
- Pro
- Analyst
- Viewer
Input Parameters
Name
ExecuteScheduleApiData
Object Type
Description
An object for settings the execution parameters of a schedule.
Output Response
Successful Result Code
200
Response Type
string
Description of Response Type
Returns the executionId for the created execution
Notes
This effectively triggers and runs the schedule immediately, creating a job to execute on the server.
Examples
Find and Run a scheduled task (JavaScript):
This example demonstrates how to find a item's schedule and then run it programmatically.
The example uses API authentication driven from JavaScript. See Authentication APIs for alternatives.
// URL of the Pyramid installation and the path to the API 3.0 REST methods
var pyramidURL = "http://mysite.com/api3/";
// step 1: authenticate admin account and get token
// NOTE: callApi method is a generic REST method shown below.
let token = callApi("authentication/authenticateUser",{
"userName":"adminUser",
"password":"abc123!"
},"",false);
log("got token "+token);
// step 2: get all the schedules in the system based on name search
let findSchedule= callApi("tasks/findSchedule ",{
"searchCriteria":{
"searchValue":"My Demo Schedule",
"searchMatchType":2
},
"scheduleType":1
},token);
// step 3: extract the schedule ID property from the returned schedule that matches "My Demo Schedule"
let scheduleId = findSchedule[0].scheduleId
// step 4: launch a run of the chosen schedule now, without triggers
let runSchedule = callApi("tasks/runSchedule ",{"scheduleId": scheduleId,"checkTriggers":"false"},token);
if(runSchedule.error!=null){
throw new Error(runSchedule.error);
}
// step 5A: OPTIONAL: get details to check running status of scheduled event. First, get execution ID
let executionId=runSchedule;
//stet 5B: get execution item's status.
let taskData= callApi("tasks/getScheduleExecutionStatus ",executionId ,token);
log("executionId status is "+executionStatus[taskData.status]);
//step 5C: check status every 3 seconds
if(taskData.status!=1){
setTimeout(getStatus,3000);
}
////############ alternative approach #################
//step 6a: get task items in that execution.
let tasks= callApi("tasks/getTasksIds ",executionId,token);
//step 6B: get the ID of the single task in that execution.
let taskId = tasks[0].id
log("got task "+taskId);
//step 6C: get status of the task.
getStatus();
function getStatus(){
let taskData= callApi("tasks/getTaskData ",taskId ,token);
log("task status is "+taskData.status);
if(taskData.status!=1){
setTimeout(getStatus,3000);
}
}
////############ other methods #################
//step 7: pause the schedule
let suspend= callApi("tasks/suspendSchedule",scheduleId, token);
//step 8: restart the schedule
let resume= callApi("tasks/resumeSchedule",scheduleId, token);
// ##### optional generic login method for debugging ##############
function log(msg){
document.write(msg);
console.log(msg);
}
// ##### generic REST API calling method ##############
function callApi(path,data,token="",parseResult=true){
var xhttp = new XMLHttpRequest();
xhttp.open("POST", pyramidURL+path, false);
xhttp.setRequestHeader("paToken",token)
xhttp.send(JSON.stringify(data));
if(parseResult){
return JSON.parse(xhttp.responseText);
}else{
return xhttp.responseText;
}
}
Code Snippets
Use the Authentication API methods to generate an access 'key' or 'token' for use in code as shown below.
TypeScript
Curl
Java
C#
Python
PHP
curl -X POST \
-H "paToken: [[apiKey]]" \
-H "Accept: application/json,application/json;charset=utf-8,text/plain,text/plain;charset=utf-8" \
-H "Content-Type: application/json" \
"http://Your.Server.URL/API3/tasks/runSchedule" \
-d '{
"checkTriggers" : true,
"scheduleId" : "scheduleId"
}'
import com.pyramidanalytics.*;
import com.pyramidanalytics.auth.*;
import com.pyramidanalytics.model.*;
import com.pyramidanalytics.api.TasksServiceApi;
import java.util.*;
import java.time.*;
public class TasksServiceApiExample {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("http://Your.Server.URL/");
// Configure API key authorization: paToken
ApiKeyAuth paToken = (ApiKeyAuth) defaultClient.getAuthentication("paToken");
paToken.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//paToken.setApiKeyPrefix("Token");
// Create an instance of the API class
TasksServiceApi apiInstance = new TasksServiceApi();
// Initialize the executeScheduleApiData parameter object for the call
ExecuteScheduleApiData executeScheduleApiData = ; // Create the input object for the operation, type: ExecuteScheduleApiData
try {
String result = apiInstance.runSchedule(executeScheduleApiData);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling TasksServiceApi#runSchedule");
e.printStackTrace();
}
}
}
import * as PyramidAnalyticsWebApi from "com.pyramidanalytics";
// Create an instance of the API class
const api = new PyramidAnalyticsWebApi.TasksServiceApi("http://Your.Server.URL")
// Configure API key authorization: paToken
api.setApiToken("YOUR API KEY");
const executeScheduleApiData = ; // {ExecuteScheduleApiData}
api.runSchedule(executeScheduleApiData).then(function(data) {
console.log('API called successfully. Returned data: ' + data);
}, function(error) {
console.error(error);
});
using System;
using System.Diagnostics;
using PyramidAnalytics.Sdk.Api;
using PyramidAnalytics.Sdk.Client;
using PyramidAnalytics.Sdk.Model;
public class runScheduleExample
{
public static void Main()
{
Configuration conf = new Configuration();
conf.BasePath = "http://Your.Server.URL/";
// Configure API key authorization: paToken
conf.ApiKey.Add("paToken", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// conf.ApiKeyPrefix.Add("paToken", "Bearer");
GlobalConfiguration.Instance = conf;
// Create an instance of the API class
var apiInstance = new TasksServiceApi();
// Initialize the executeScheduleApiData parameter object for the call
var executeScheduleApiData = new ExecuteScheduleApiData(); // ExecuteScheduleApiData |
try {
// Trigger and execute of an existing schedule
string result = apiInstance.runSchedule(executeScheduleApiData);
Debug.WriteLine(result);
} catch (Exception e) {
Debug.Print("Exception when calling TasksServiceApi.runSchedule: " + e.Message );
}
}
}
import com.pyramidanalytics
from com.pyramidanalytics import ApiException
from com.pyramidanalytics import TasksServiceApi
from pprint import pprint
# Configure API key authorization: paToken
api_config = com.pyramidanalytics.Configuration(host = 'http://Your.Server.URL/', api_key={ paToken:'YOUR_ACCESS_TOKEN' })
with com.pyramidanalytics.ApiClient(api_config) as api_client:
# Create an instance of the API class
api_instance = TasksServiceApi(api_client)
# Initialize the executeScheduleApiData parameter object for the call
executeScheduleApiData = # ExecuteScheduleApiData |
try:
# Trigger and execute of an existing schedule
api_response = api_instance.run_schedule(executeScheduleApiData)
pprint(api_response)
except ApiException as e:
print("Exception when calling TasksServiceApi->runSchedule: %s\n" % e)
<?php
require_once(__DIR__ . '/vendor/autoload.php');
OpenAPITools\Client\Configuration::getDefaultConfiguration()->setHost('http://Your.Server.URL');
// Configure API key authorization: paToken
OpenAPITools\Client\Configuration::getDefaultConfiguration()->setApiKey('paToken', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// OpenAPITools\Client\Configuration::getDefaultConfiguration()->setApiKeyPrefix('paToken', 'Bearer');
// Create an instance of the API class
$api_instance = new OpenAPITools\Client\Api\TasksServiceApi();
$executeScheduleApiData = ; // ExecuteScheduleApiData |
try {
$result = $api_instance->runSchedule($executeScheduleApiData);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling TasksServiceApi->runSchedule: ', $e->getMessage(), PHP_EOL;
}
?>